{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Interactive NGSolve Tutorial\n",
    "====\n",
    "[Before we start](before_we_start.ipynb)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Getting started\n",
    "----\n",
    "* [1.1](unit-1.1-poisson/poisson.ipynb) Poisson equation\n",
    "* [1.2](unit-1.2-coefficient/coefficientfunction.ipynb) CoefficientFunctions\n",
    "* [1.3](unit-1.3-dirichlet/dirichlet.ipynb) Dirichlet boundary conditions\n",
    "* [1.4](unit-1.4-staticcond/staticcond.ipynb) Static condensation\n",
    "* [1.5](unit-1.5-subdomains/subdomains.ipynb) Spaces and forms on sub-domains\n",
    "* [1.6](unit-1.6-adaptivity/adaptivity.ipynb) Error estimation and refinement\n",
    "* [1.7](unit-1.7-helmholtz/helmholtz.ipynb)  Helmholtz equation\n",
    "  * [1.7.1](unit-1.7-helmholtz/pml.ipynb) Perfectly matched layers (PML)\n",
    "* [1.8](unit-1.8-meshtopology/meshtopology.ipynb) Exploring the mesh topology"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Advanced topics\n",
    "----\n",
    "\n",
    "* 2.1 Preconditioning\n",
    "    \n",
    "    * [2.1.1](unit-2.1.1-preconditioners/preconditioner.ipynb) Available preconditioners and solvers\n",
    "    * [2.1.2](unit-2.1.2-blockjacobi/blockjacobi.ipynb) Programming preconditioners\n",
    "\n",
    "    * [2.1.3](unit-2.1.3-bddc/bddc.ipynb) p-version BDDC preconditioner\n",
    "\n",
    "* [2.2](unit-2.2-eigenvalues/pinvit.ipynb) Eigenvalue solver\n",
    "     \n",
    "* [2.3](unit-2.3-hcurlhdiv/hcurlhdiv.ipynb) $H(curl)$ and $H(div)$ finite element spaces\n",
    "* [2.4](unit-2.4-Maxwell/Maxwell.ipynb) Solving Maxwell equations\n",
    "   * [2.4.1](unit-2.4-Maxwell/Maxwellevp.ipynb) Maxwell eigenvalue problem \n",
    "* [2.5](unit-2.5-mixed/mixed.ipynb) Mixed formulations for second order equations\n",
    "* [2.6](unit-2.6-stokes/stokes.ipynb) Stokes equation\n",
    "* [2.7](unit-2.7-hybrid/hybrid.ipynb) Facet-spaces and hybrid methods\n",
    "* [2.8](unit-2.8-DG/DG.ipynb) (Hybrid) Discontinuous Galerkin methods \n",
    "* [2.9](unit-2.9-fourthorder/fourthorder.ipynb) Fourth order equations - Kirchhoff plates\n",
    "* [2.10](unit-2.10-dualbasis/dualbasis.ipynb) Dual basis functions\n",
    "* [2.11](unit-2.11-matrixfree/matrixfree.ipynb) Matrix-free operator application\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Time-dependent and non-linear problems\n",
    "----\n",
    "* [3.1](unit-3.1-parabolic/parabolic.ipynb) Time-stepping methods for parabolic equations\n",
    "* [3.2](unit-3.2-navierstokes/navierstokes.ipynb) Time-dependent Navier-Stokes equation\n",
    "* [3.3](unit-3.3-scalardg/scalardg.ipynb) DG-method for convection (operator application)\n",
    "    * [3.3.1](unit-3.3.1-wavedg/wavedg.ipynb) DG-method for acoustic wave propagation (tuned operator applications) \n",
    "* [3.4](unit-3.4-simplehyp/shallow2D.ipynb) DG for hyperbolic conservation laws \n",
    "* [3.5](unit-3.5-surfacehdg/surfacehdg.ipynb) Scalar HDG on surface\n",
    "* [3.6](unit-3.6-opsplit/opsplit.ipynb)  DG/HDG operator splitting methods\n",
    "* [3.7](unit-3.7-nonlinear/nonlinear.ipynb) Non-linear equations\n",
    "* [3.8](unit-3.8-nonlmin/nonlmin.ipynb) Non-linear minimization problems\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Geometric modeling and mesh generation\n",
    "---\n",
    "\n",
    "* [4.1](unit-4.1-geom2d/geom2d.ipynb) Spline geometries in 2D\n",
    "* [4.2](unit-4.2-csg/csg.ipynb) CSG geometries in 3D\n",
    "* [4.3](unit-4.3-manualmesh/manualmeshing.ipynb) Working with meshes"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "MPI-parallel NGSolve and FETI-DP\n",
    "---\n",
    "\n",
    "* [5.0](unit-5.0-mpi_basics/MPI-Parallelization_in_NGSolve.ipynb) Starting MPI jobs\n",
    "* [5.1](unit-5.1-mpi_ngsolve/mpi_basics.ipynb) Basics of MPI-parallel NGSolve\n",
    "* [5.2](unit-5.2-fetidp_point2d/feti-dp-i.ipynb) FETI-DP with point-constraints in 2D\n",
    "* [5.3](unit-5.3-fetidp_point3d/feti-dp-ii.ipynb) FETI-DP with point-constraints in 3D\n",
    "* [5.4](unit-5.4-fetidp_edge/feti-dp-iii.ipynb) FETI-DP with point- and edge-constraints\n",
    "* [5.5](unit-5.5-fetidp_inexact/feti-dp-iv.ipynb) inexact FETI-DP\n"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.4"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
